package com.walming.generator.common.constant;

/**
 * 代码生成通用常量
 *
 * @author walming
 */
public class GenConstants {

    /** 代码生成默认作者 */
    public static final String AUTHOR = "gen_author";
    /** 默认生成包路径 */
    public static final String PACKAGE_NAME = "gen_package_name";
    /** 代码生成模版（mybatis、 mybatis-plus、ruoyi） */
    public static final String GEN_TEMPLATE = "gen_template";
    /** 自动去除表前缀（0否 1是） */
    public static final String AUTO_REMOVE_PRE = "gen_auto_remove_pre";
    /** 代码生成表前缀 */
    public static final String TABLE_PREFIX = "gen_table_prefix";
    /** 默认代码预览主题 */
    public static final String PREVIEW_THEME = "gen_preview_theme";
    /** 字段是否启用swagger注解（0否 1是） */
    public static final String SWAGGER_ENABLE = "gen_swagger_enable";
    /** 字段是否启用excel注解（0否 1是） */
    public static final String EXCEL_ENABLE = "gen_excel_enable";

    /** MYBATIS */
    public static final String MYBATIS = "mybatis";
    /** MYBATIS-PLUS */
    public static final String MYBATIS_PLUS = "mybatis-plus";
    /** 若依 */
    public static final String RUO_YI = "ruoyi";

    /** 默认代码生成方式（0 zip压缩包 1 自定义路径） */
    public static final String GEN_TYPE = "0";

    /** 单表（增删改查） */
    public static final String TPL_CRUD = "crud";
    /** 树表（增删改查） */
    public static final String TPL_TREE = "tree";
    /** 主子表（增删改查） */
    public static final String TPL_SUB = "sub";

    /** 树编码字段 */
    public static final String TREE_CODE = "treeCode";
    /** 树父编码字段 */
    public static final String TREE_PARENT_CODE = "treeParentCode";
    /** 树名称字段 */
    public static final String TREE_NAME = "treeName";

    /** 上级菜单ID字段 */
    public static final String PARENT_MENU_ID = "parentMenuId";
    /** 上级菜单名称字段 */
    public static final String PARENT_MENU_NAME = "parentMenuName";

    /** 数据库字符串类型 */
    public static final String[] COLUMN_TYPE_STR = {"char", "varchar", "narchar", "varchar2", "tinytext", "text", "mediumtext", "longtext"};
    /** 数据库时间类型 */
    public static final String[] COLUMN_TYPE_TIME = {"datetime", "time", "date", "timestamp"};
    /** 数据库数字类型 */
    public static final String[] COLUMN_TYPE_NUMBER = {"tinyint", "smallint", "mediumint", "int", "number", "integer", "bigint", "float", "float", "double", "decimal"};

    /** 页面不需要编辑字段 */
    public static final String[] COLUMN_NAME_NOT_EDIT = {"id", "create_by", "create_time", "del_flag"};
    /** 页面不需要显示的列表字段 */
    public static final String[] COLUMN_NAME_NOT_LIST = {"id", "create_by", "create_time", "del_flag", "update_by", "update_time"};
    /** 页面不需要查询字段 */
    public static final String[] COLUMN_NAME_NOT_QUERY = {"id", "create_by", "create_time", "del_flag", "update_by", "update_time", "remark"};

    /** Entity基类字段 */
    public static final String[] BASE_ENTITY = {"createBy", "createTime", "updateBy", "updateTime", "remark"};
    /** Tree基类字段 */
    public static final String[] TREE_ENTITY = {"parentName", "parentId", "orderNum", "ancestors"};

    /** 文本框 */
    public static final String HTML_INPUT = "input";
    /** 文本域 */
    public static final String HTML_TEXTAREA = "textarea";
    /** 下拉框 */
    public static final String HTML_SELECT = "select";
    /** 单选框 */
    public static final String HTML_RADIO = "radio";
    /** 复选框 */
    public static final String HTML_CHECKBOX = "checkbox";
    /** 日期控件 */
    public static final String HTML_DATETIME = "datetime";
    /** 上传控件 */
    public static final String HTML_UPLOAD = "upload";

    /** 字符串类型 */
    public static final String TYPE_STRING = "String";
    /** 整型 */
    public static final String TYPE_INTEGER = "Integer";
    /** 长整型 */
    public static final String TYPE_LONG = "Long";
    /** 浮点型 */
    public static final String TYPE_DOUBLE = "Double";
    /** 高精度计算类型 */
    public static final String TYPE_BIGDECIMAL = "BigDecimal";
    /** 时间类型 */
    public static final String TYPE_DATE = "Date";

    /** 模糊查询 */
    public static final String QUERY_LIKE = "LIKE";
    /** 需要 */
    public static final String REQUIRE = "1";

}
